#ifndef __DOUBLE_LINK_LIST_H__
#define __DOUBLE_LINK_LIST_H__

template<typename T>
class DoubleLinkList
{
public:
    DoubleLinkList();
    ~DoubleLinkList();
    inline bool Add(T* pNode);
    inline bool Del(T* pNode);
    inline T* GetHead();
    inline short GetLength();
private:
    bool Checker();
    bool CheckBeforeDel(T *pNode);
    T *m_pHead;
    T *m_pTail;
    short m_nNodeNum;
};

#endif //__DOUBLE_LINK_LIST_H__

